package com.ssy.lingxi.workflow.service;

import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.workflow.api.model.vo.request.*;
import com.ssy.lingxi.workflow.api.model.vo.response.ComplexTaskDefVO;
import com.ssy.lingxi.workflow.api.model.vo.response.SimpleProcessDefVO;

/**
 * 流程定义查询接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-04-26
 */
public interface IProcessQueryService {

    /**
     * 查询复杂流程的任务定义
     * @param queryVO 接口参数
     * @return 查询结果
     */
    Wrapper<ComplexTaskDefVO> findComplexTaskDefinitions(ComplexProcessQueryVO queryVO);

    /**
     * 查询复杂流程的任务定义
     * @param queryVO 接口参数
     * @return 查询结果
     */
    Wrapper<ComplexTaskDefVO> findComplexTaskDefinitions(ComplexProcessWithRolesQueryVO queryVO);

    /**
     * 查询单一的外部流程的定义
     * @param queryVO 接口参数
     * @return 查询结果
     */
    Wrapper<SimpleProcessDefVO> findSimpleExternalTaskDefinitions(ExternalProcessQueryVO queryVO);

    /**
     * 查询单一的外部流程的定义
     * @param queryVO 接口参数
     * @return 查询结果
     */
    Wrapper<SimpleProcessDefVO> findSimpleExternalTaskDefinitions(ExternalProcessWithRolesQueryVO queryVO);

    /**
     * 查询单一的内部流程的定义
     * @param queryVO 接口参数
     * @return 查询结果
     */
    Wrapper<SimpleProcessDefVO> findSimpleInternalTaskDefinitions(InternalProcessQueryVO queryVO);
}

